home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…rary 8 (Internal Edition) / Apple R&P Lib Internal v8.0.iso / 5-Fonts & Software / Claris HyperCard 2.1 / HyperCard 2.1.sea / Audio Help / stack_-1.xml < prev    next >
Extensible Markup Language  |  1991-04-23  |  38KB  |  131 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in</name>
  5.     <id>-1</id>
  6.     <cardCount>110</cardCount>
  7.     <cardID>18406</cardID>
  8.     <listID>12402</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><false /></cantAbort>
  12.     <cardSize>
  13.         <width>256</width>
  14.         <height>292</height>
  15.     </cardSize>
  16.     <script>‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àûAudio HelpVersion 2.1¬©Copyright 1987-1991 by Apple Computer,Inc.All Rights Reserved.THE MESSAGE HANDLERS USED IN THIS SCRIPT:openStack,closeStack,resumeStack,suspendStack,help,createHelpMenu,deleteHelpMenu,setLocationCheckMark,resetHelpGlobal,storeHelpInfo,leaveHelp,goOverview,goBalloons,goMainTopics,goContent,goCard,goGray,storeMostRecentCard,selectWholeLine,checkForMissingFonts,saveSelection,checkSaveSelect,apClose,openCard,closeCard,openField,apOpenStack,apCloseStack,apHelp,apInvoke,resetAPMenus,apSave,apBeginEdit,apBeginWaveEdit,apEndWaveEdit,startSound,UpdateProtoScripts,annoteInstall,normalInstall,UpdateAnnoteMenus,apDelVNote,apHideNotes,apShowNotes,apAddMemo,resetAPButtons,PlayAllMemosTHE FUNCTION HANDLERS USED IN THIS SCRIPT:menuItems,menuCommands,getHelpInfo,stackIsBeingUsed,realTopicName,truncateName,checkIfAppointments,checkIfAddresses,computeMemoLoc,buttonAlreadyThere,cardHasSounds,isSoundButton,firstSoundButton,‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû------‚Ä¢‚Ä¢  SYSTEM MESSAGES  ‚Ä¢‚Ä¢------on openStackAPopenStack -- for the Audio Paletteif stackIsBeingUsed() then pass openStackset cursor to watchcheckForMissingFonts -- Check to see that necessary fonts are available.createHelpMenu -- Create the Help menu for this stack.resetHelpGlobal -- Empty out the stack's global variable.storeMostRecentCard -- Store the most recent card, so it can be returned to.show groups -- Put a gray underline under the grouped text.pass openStackend openStackon closeStackapCloseStack -- for the Audio Paletteif stackIsBeingUsed() then pass closeStackset cursor to watchsend resetMainTopicsCard to card 1resetHelpGlobaldeleteHelpMenuhide groupspass closeStackend closeStackon resumeStackset cursor to watchAPopenStack -- for the Audio Paletteif stackIsBeingUsed() then pass resumeStackcreateHelpMenushow groupssend "setCheckMark true" to this cardpass resumeStackend resumeStackon suspendStackapCloseStack -- for the Audio Paletteif stackIsBeingUsed() then pass suspendStackdeleteHelpMenupass suspendStackend suspendStackon help theTopicput "HyperCard Help" into theStack  --‚àÜput "Audio Help" into AudioHelp  --‚àÜif ":" & theStack & return is in the stacks thenif the longWindowTitlesthen show window line (the number of lines of char 1 to offset(":" & theStack & return, the stacks) of the stacks) of the stackselse show window theStackelsego to stack theStack in a new window -- try in a new windowif the result = "Cancel" thengo to stack AudioHelp in a new windowexit helpelseif the result ‚↠empty thengo to stack theStackend ifend ifend ifif the result is empty then findInTitle theTopic -- in the help stackend help------‚Ä¢‚Ä¢  SCRIPTS FOR HANDLING THE HELP MENU  ‚Ä¢‚Ä¢------on createHelpMenu-- Create the stack-specific menu.global AudioHelpMenuput "Help" into AudioHelpMenu -- ‚àÜ The name of the stack-specific menu.-- Remove any existing menus that might have the same name.deleteHelpMenucreate menu AudioHelpMenuput menuItems() into menu AudioHelpMenu with menuMsg menuCommands()-- Disable the menu item "Print Topic"disable menuItem 6 of menu AudioHelpMenuend createHelpMenufunction menuItems-- Return the menu items for the stack-specific menu.return "Main Topics,Content,Quick View,Overview,-,Print Topic" -- ‚àÜend menuItemsmenuItemsfunction menuCommands-- Return the menu commands for the stack-specific menu.return "goMainTopics,goContent,goBalloons,goOverview,,printTopic"end menuCommandson deleteHelpMenuglobal AudioHelpMenuif there is a menu AudioHelpMenu then delete menu AudioHelpMenuend deleteHelpMenuon setLocationCheckMark whichItem,boolean-- Set a check mark to indiate the current location.-- whichItem is an integer, the menu item that you want to check-- or uncheck.-- whichItem is true or false depending on whether you want to-- check or uncheck the menu item.global AudioHelpMenuif there is a menu AudioHelpMenu thenif there is a menuItem whichItem in menu AudioHelpMenu thenset checkMark of menuItem whichItem of menu AudioHelpMenu to booleanend ifend ifend setLocationCheckMark------‚Ä¢‚Ä¢  SCRIPTS FOR HANDLING THE HELP GLOBAL  ‚Ä¢‚Ä¢------on resetHelpGlobalglobal AudioHelpInfoput empty into AudioHelpInfoend resetHelpGlobalon storeHelpInfo lineNumber,theValue-- Use this handler to put a value into the global AudioHelpInfo.-- lineNumber is an integer, the line number of the-- global you want to put the value into. theValue is the value-- you want to store in the global.global AudioHelpInfoput theValue into line lineNumber of AudioHelpInfoend storeHelpInfofunction getHelpInfo lineNumber-- Use this hanlder to get a value from the AudioHelpInfo global.-- lineNumber is an integer, the line number of the-- global that you want to return.global AudioHelpInforeturn line lineNumber of AudioHelpInfoend getHelpInfo------‚Ä¢‚Ä¢  SCRIPTS FOR BASIC NAVIGATION  ‚Ä¢‚Ä¢------on leaveHelp-- This handler is called when you click the Leave Help button in-- either background.put getHelpInfo(1) into theCard -- path of the return cardif theCard is empty then put "Home" into theCardgo theCardend leaveHelpon goOverview-- Go to the Overview card.put the name of this card into cardNameput realTopicName() into topicNamegoCard "Overview"end goOverviewon goBalloons-- Go to the Quick View card.put the name of this card into cardNameput realTopicName() into topicNamegoCard "Quick View"end goBalloonson goMainTopics-- Go to the first main topics card.go first cardend goMainTopicson goContent-- Go to the Content backgroundgo background "Content"end goContenton goCard cardName-- Go to a card by name, making sure to truncate the name-- to 28 chars. All card names are already truncated.-- cardName is the short name of the card you want to go to.set cursor to watchif cardName is empty then exit goCardwait 5go card truncateName(cardName)if the result is not empty then-- The requested card wasn't found.get the resultbeepanswer it && quote & cardName & quote & "."exit goCardend ifif the mouse is down then exit goCard -- trap double clickend goCardon goGray-- You clicked on one of the gray navigation buttons.beepend goGray------‚Ä¢‚Ä¢  GENERAL MESSAGE HANDLERS  ‚Ä¢‚Ä¢------on storeMostRecentCard-- This handler stores the most recent card in a global, so you-- can return to it when you click the "Leave Help" button.push recent cardpop card into theCardstoreHelpInfo 1,theCard -- path of the return cardend storeMostRecentCardon selectWholeLine N,theField,nextN-- This handler selects a whole line of text, including the final-- return character, in the field.-- N is an integer, the number of the line you want to select.-- theField is a complete field record as in ‚Äúthe target,‚Äù not just-- the field name.-- if you want to select more than one line, put the line number into-- nextN.if nextN is empty then put N into nextNput line N to nextN of the value of theField into theTextif theText is not empty thenput (number of chars of line 1 to nextN of the value of theField) + 1 ¬¨into endCharselect emptydo "select char (endChar - length(theText)) to endChar of" ¬¨&& theFieldend ifend selectWholeLine-----  Font Adjustment Scripts:  ----------------------------------on checkForMissingFonts-- check to see if the fonts needed for this stack are-- installed in the system. Inform the user if they're not.global APFontsCheckedif APFontsChecked is not empty then exit checkForMissingFonts -- already been here.put "fonts checked." into APFontsCheckedput empty into missingif not FontExists("Palatino",12) then put "Palatino 12" & return after missing  --‚àÜif not FontExists("Palatino",14) then put "Palatino 14" & return after missing  --‚àÜif not FontExists("Helvetica",18) then put "Helvetica 18" & return after missing  --‚àÜif missing is empty then exit checkForMissingFontsbeepanswer "These font(s) are missing from your system:" & ¬¨return & return & missing & return & ¬¨"For text to display correctly in the Audio Help stack, make sure you have" ¬¨&& "installed the fonts included with System 6.0.6." -- ‚àÜend checkForMissingFonts------‚Ä¢‚Ä¢  GENERAL FUNCTION HANDLERS  ‚Ä¢‚Ä¢------function stackIsBeingUsed-- If Audio Help is being used by the active stack,-- then return true.return not (the name of this stack is the name of me)end stackIsBeingUsedfunction realTopicName-- Return the actual name of the current topic even if-- the user is on a ‚Äúcontinued‚Äù card.if there is not a bkgnd field "Pages" then return empty-- ‚àÜ This routine depends on "Card X of Y" format in the fieldput word 2 of bkgnd field "Pages" into currentPageget the number of this cardput bkgnd field "Title" ¬¨of card (it - currentPage + 1) into topicNameif number of lines in topicName > 1 thendelete line 2 of topicNameput "‚Ķ" after topicName -- ‚àÜend ifif number of chars in topicName > 19 thenput char 1 to 19 of topicName into topicNameif "‚Ķ" is not in topicName then put "‚Ķ" after topicName -- ‚àÜend ifreturn topicNameend realTopicNamefunction truncateName theText-- Removes spaces from a card name, truncates it, and removes-- any spaces again. You should set the name of all the cards with-- this function.get the number of words in theTextput word 1 to it of theText into theCardreturn char 1 to 28 of theCardend truncateName------‚Ä¢‚Ä¢  SCRIPTS FOR HANDLING THE AUDIO PALETTE  ‚Ä¢‚Ä¢--------system message handlerson saveSelectionglobal SaveSelect,SaveLine,SaveLocput empty into saveSelectCheckSaveSelectend saveSelectionon CheckSaveSelectglobal SaveSelect,SaveLine,SaveLocif there is a field "notes" then put the number of field "notes" into NoteFieldget the selectedChunkif it is not empty and "message box" is not in it and ¬¨word 6 to 8 of it is not "bkgnd field" && NoteField thenput it into SaveSelectput the selectedLine into SaveLineput the selectedLoc into SaveLocset the textstyle of SaveSelect to boldend ifend CheckSaveSelecton apCloseglobal SaveSelect,InvokeMItemif saveSelect ‚↠empty thenif the textstyle of saveSelect is bold then set the textstyle of saveSelect to plainend ifpass apCloseend apCloseon openCardglobal IsASoundStackif not IsASoundStack then pass openCardset the cursor to watchresetAPButtonspass openCardend openCardon closeCardglobal IsASoundStack,saveSelectif not IsASoundStack then pass closeCardif saveSelect ‚↠empty thenif the textstyle of saveSelect is bold then set the textstyle of saveSelect to plainput empty into saveSelectend ifpass closeCardend closeCardon openFieldglobal IsASoundStack, saveSelectif not IsASoundStack then pass openFieldif saveSelect ‚↠empty then-- get the selectedChunkset the textstyle of saveSelect to plain-- if it is not empty and "message box" is not in it and "notes" is not in it-- then put empty into saveSelectput empty into saveSelectend ifpass openFieldend openFieldon apOpenStackglobal IsASoundStackput (CheckIfAppointments() or CheckIfAddresses()) into IsASoundStackresetAPMenusif there is a window "AudioPalette"then send "update" to window "AudioPalette" --rebuild sound pop-upend apOpenStackfunction CheckIfAppointments-- also makes sure the Appointments stack has been modified-- to pass openCard, which is something we need.if not (there is a bg ID 2603) then return false -- faster than "is not a"if "resetAPButtons" is not in the script of bg ID 2603 then return falseif "pass openCard" is not in the script of bg ID 21753 thenput script of bg ID 21753 into TheScriptget number of lines in char 1 to offset(return & "end openCard",TheScript)¬¨of TheScriptif it = 0 then return trueput return & "pass openCard" after line it of TheScriptset the script of bg ID 21753 to TheScriptend ifreturn trueend CheckIfAppointmentsfunction CheckIfAddressesif not (there is a bg ID 3664) then return false -- faster than "is not a"if "resetAPButtons" is not in the script of bg ID 3664 then return falseelse return trueend CheckIfAddresseson apCloseStackglobal APMenuName, memoMItem,delMItem,¬¨showMItem,hideMItem,IsASoundStackif there is a menuItem hideMItem in menu 3 thendelete menuItem hideMItem from menu 3else if there is a menuItem showMItem in menu 3 thendelete menuItem showMItem from menu 3end ifif there is a menuItem delMItem in menu 3 thendelete menuItem delMItem from menu 3end ifif there is a menuItem memoMItem in menu 3 thendelete menuItem memoMItem from menu 3end ifput false into IsASoundStackend apCloseStack--menu messege handlerson DoMenu theItem,theMenuglobal APHasEditif APHasEdit is true then -- have to say "is true" because it may not be definedif word 1 of theItem is in "Undo,Cut,Copy,Paste,Clear" then --‚àÜsend word 1 of theItem to window "AudioPalette"exit doMenuend ifend ifpass DoMenuend DoMenuon apHelpglobal helpMItemgo to stack helpMItem in a new windowget the resultif it is "Cancel" then exit apHelpif it ‚↠empty then go to stack helpMItemend apHelpon apInvokeglobal InvokeMItemif there is not a window "AudioPalette" then AudioPaletteelse show window "AudioPalette" -- to bring to the front of the windoid layerend apInvokeon resetAPMenusglobal memoMItem,invokeMItem,helpMItem,IsASoundStackif (":" & helpMItem & return) is not in (the stacksInUse & return) thenstart using stack helpMItemStartSoundend ifif IsASoundStack then UpdateAnnoteMenusif there is a menuitem helpMItem in menu 3 thenset the checkmark of menuItem helpMItem in menu 3 to¬¨(the name of this stack = the name of me)end ifend resetAPMenuson apSave fileNameglobal IsASoundStackset the cursor to watchif IsASoundStack then annoteInstall fileNameelse normalInstall fileNameend apSaveon apBeginEditglobal SaveSelect, SaveLine, SaveLocput "Undo" into menuitem 1 of menu 3  --‚àÜput "-" into menuitem 2 of menu 3  --‚àÜput "Cut" into menuItem 3 of menu 3  --‚àÜput "Copy" into menuItem 4 of menu 3  --‚àÜput "Paste" into menuItem 5 of Menu 3  --‚àÜput "Clear" into menuItem 6 of menu 3  --‚àÜset cmdChar of menuitem 1 of menu 3 to "Z" --‚àÜset cmdChar of menuItem 3 of menu 3 to "X" --‚àÜset cmdChar of menuItem 4 of menu 3 to "C" --‚àÜset cmdChar of menuItem 5 of menu 3 to "V" --‚àÜif SaveSelect is not empty then exit apBeginEditget the SelectedChunkif there is a field "notes" then put the number of field "notes" into NotesFieldif it is empty or "message box" is in it or ¬¨word 6 to 8 of it = "bkgnd field" && NotesField then exit apBeginEditput it into SaveSelectput the selectedLine into SaveLineput the selectedLoc into SaveLocset the textstyle of SaveSelect to boldend apBeginEditon apBeginWaveEditglobal HCEditItems,APEditingItems,APEditingItemMsgs, ¬¨SaveSelect, SaveLine, SaveLoc, APHasWaveEditif SaveSelect is empty thenCheckSaveSelectend ifif SaveSelect is not empty then set the textStyle of SaveSelect to boldput true into APHasWaveEditput "Undo" into menuitem 1 of menu 3  --‚àÜput "-" into menuitem 2 of menu 3  --‚àÜput "Cut Sound" into menuitem 3 of menu 3  --‚àÜput "Copy Sound" into menuitem 4 of menu 3  --‚àÜput "Paste Sound" into menuitem 5 of menu 3  --‚àÜput "Clear Sound" into menuitem 6 of menu 3  --‚àÜset cmdChar of menuitem 1 of menu 3 to "Z" --‚àÜset cmdChar of menuitem 3 of menu 3 to "X" --‚àÜset cmdChar of menuitem 4 of menu 3 to "C" --‚àÜset cmdChar of menuitem 5 of menu 3 to "V" --‚àÜif there is a menuItem "Select All" of menu 3 then exit apBeginWaveEdit --‚àÜput "-,Select All,View All" after menuitem 6 of menu 3 with ¬¨  --‚àÜmenuMsgs "-,send SelectAll to window AudioPalette," &¬¨"send ViewAll to window AudioPalette"set cmdChar of menuitem 8 of menu 3 to "A" --‚àÜset cmdChar of menuitem 9 of menu 3 to "S" --‚àÜend apBeginWaveEditon apEndWaveEditglobal HCEditMenuItems, APHasWaveEditput false into APHasWaveEditput "Undo" into menuitem 1 of menu 3  --‚àÜput "-" into menuitem 2 of menu 3  --‚àÜput "Cut" into menuItem 3 of menu 3  --‚àÜput "Copy" into menuItem 4 of menu 3  --‚àÜput "Paste" into menuItem 5 of Menu 3  --‚àÜput "Clear" into menuItem 6 of menu 3  --‚àÜset cmdChar of menuitem 1 of menu 3 to "Z" --‚àÜset cmdChar of menuItem 3 of menu 3 to "X" --‚àÜset cmdChar of menuItem 4 of menu 3 to "C" --‚àÜset cmdChar of menuItem 5 of menu 3 to "V" --‚àÜif there is not a menuItem "Select All" of menu 3 then exit apEndWaveEdit  --‚àÜrepeat 3delete menuitem 7 of menu 3end repeatend apEndWaveEdit--other handlerson startSoundglobal SaveSelect,hideMItem,protoApptBtnScript,protoNormalBtnScript,¬¨memoMItem,delMItem,showMItem,APMenuName,invokeMItem,helpMItem,¬¨IsASoundStack,HCEditMenuItemsput (CheckIfAppointments() or CheckIfAddresses()) into IsASoundStackput empty into Saveselectput "Edit" into APMenuName --‚àÜ name of menu AudioPallete usesput "Audio..." into invokeMItem --‚àÜ item which launches APput "Audio Help" into helpMItem --‚àÜ item which opens help stackput  "Add Audio Memo" into memoMItem --‚àÜ item which adds a memoput  "Delete Audio Memo‚Ķ" into delMItem --‚àÜ item which deletes memoput  "Hide Audio Memos"  into hideMItem --‚àÜ item which hides memosput  "Show Audio Memos"  into showMItem --‚àÜ item which shows memosif last menuItem of menu 3 is "-" then delete last menuItem of menu 3if there is not a menuItem invokeMItem in menu 3 thenput "-(" & return & invokeMItem & return & helpMItem after¬¨menu 3 with menuMsgs "dash,APinvoke,APhelp"end ifput menu 3 into HCEditMenuItemsset the cursor to watchlock screenset lockmessages to truepush cardgo to stack helpMItemput the script of bg btn "ProtoApptbtn" into protoApptBtnScriptput the script of bg btn "ProtoNormalbtn" into protoNormalBtnScriptpop cardset lockmessages to falseunlock screenend startSoundon UpdateProtoScriptsglobal protoApptBtnScript,protoNormalBtnScriptput the script of bg btn "ProtoApptbtn" into protoApptBtnScriptput the script of bg btn "ProtoNormalbtn" into protoNormalBtnScriptend UpdateProtoScriptson annoteInstall fileNameglobal SaveSelect, protoApptBtnScript, SaveLine, SaveLocif SaveSelect is empty thenCheckSaveSelectend ifif the first char of fileName is quote thendelete the last char of fileNamedelete the first char of fileNameend ifput fileName & return & "AP Button" into NewBtnNameput protoApptBtnScript into btnscriptget number of words in char 1 to offset("putSoundNameHere",btnScript) of btnScriptput quote & fileName & quote into word it of btnscriptif there is a button NewBtnName thenif SaveSelect is not empty thenput ComputeMemoLoc(NewBtnName) into InstallLocset loc of btn NewBtnName to InstallLocif not the visible of btn NewBtnName then show btn NewBtnNameend ifelseput ComputeMemoLoc() into InstallLoclock screenget the userlevelset the userlevel to 5domenu "New Button"choose browse toolset the userlevel to itput the ID of last btn into btnIDset the name of btn ID btnID to NewBtnNameset height of btn ID btnID to 17set width of btn ID btnID to 20set the script of btn ID btnID to btnscriptset the loc of btn ID btnID to InstallLocset the icon of btn ID btnID to 29183set the showname of btn ID btnID to falseset the style of btn ID btnID to opaqueset the autoHilite of btn ID btnID to falseunlock screenend ifif saveSelect is not empty thenset the textstyle of saveSelect to plainput empty into SaveSelectend ifUpdateAnnoteMenusif the visible of btn NewBtnName thenrepeat 4wait 10set the hilite of btn NewBtnName to not the hilite of btn NewBtnNameend repeatend ifput "To move your button, hold down the option key and drag." --‚àÜend annoteInstallfunction ComputeMemoLoc TargetButtonglobal SaveSelect, SaveLine, SaveLocif SaveSelect is empty thenput "10,28" into InstallLocelseput (word 4 to 6 of saveLine) into thisFieldNameif the ID of this bg is 3664 thenif the first word of the short name of thisFieldName is "Phone" thenput 29 into leftOffsetput 7 into vertOffsetelseput 10 into leftOffsetput 11 into vertOffsetend ifelseput 24 into leftOffsetput 2 into vertOffsetend ifput (the left of thisFieldName) - leftOffset into item 1 of installLocput (item 2 of saveLoc) - (the textHeight of thisFieldName DIV 2) into item 2 of installLocend ifif not CardHasSounds() then return installLocput the number of btns into NumBtnsput installLoc = "10,28" into WasInCornerput installLoc into OriginalLocput true into FoundOneput empty into BtnInChainrepeat until not FoundOneput false into FoundOnerepeat with count = 1 to NumBtnsif not IsSoundButton(count) then next repeatif installLoc is within the rect of btn count thenput true into FoundOneif WasInCorner thenrepeat until ButtonAlreadyThere(installLoc) = 0add 9 to item 1 of installLocadd 9 to item 2 of installLocif installLoc is not within the rect of this cd then subtract 9 from item 2 of installLocend repeatelseif BtnInChain is empty then put the short name of btn count into BtnInChainif TargetButton is not empty thenif installLoc = the loc of btn TargetButton then return InstallLocend ifrepeat until ButtonAlreadyThere(installLoc) = 0add 8 to item 2 of installLocif item 2 of installLoc + 8 > the height of this cd thensubtract 8 from item 2 of installLocadd 5 to item 1 of installLocend ifif TargetButton is not empty thenif installLoc = the loc of btn TargetButton then return InstallLocend ifend repeatend ifend ifend repeatend repeatif WasInCorner then return installLocif BtnInChain is not empty thenset cursor to arrowanswer "Do you want to replace the old audio memo with the new one?" with¬¨ --‚àÜ"No" or "Yes" --‚àÜset cursor to watchif it is "No" then return InstallLoc --‚àÜelselock screensend "deleteMe noSound" to btn BtnInChainreturn OriginalLocend ifend ifreturn InstallLocend ComputeMemoLocfunction ButtonAlreadyThere theLocif not CardHasSounds() then return 0put the number of btns into NumBtnsrepeat with i = 1 to NumBtnsif not IsSoundButton(i) then next repeatif theLoc is within the rect of btn i then return iend repeatreturn 0end ButtonAlreadyThereon normalInstall fileNameglobal helpMItem, protoNormalBtnScript, lastButtonput FALSE into noNewButtonput empty into prevBtnlock screenput filename into itif char 1 of fileName = quote thendelete the first char of filenamedelete the last char of filenameend ifput "Play" && filename into newName  --‚àÜrepeat with i = 1 to the number of btnsget the short name of btn iif it is newName thenput TRUE into noNewButtonexit repeatend ifif the first word of it is "Play" then --‚àÜput it into prevBtnend ifend repeatif not noNewButton thenget the userlevelset the userlevel to 5doMenu "New Button"set the userlevel to it-- set attributes of new buttonset showName of last card button to trueset name of last card button to newNameset autoHilite of last card button to falseget length(newName)set width of last card button to (it * 8)put protoNormalBtnScript into btnScriptget number of words in char 1 to offset("putSoundNameHere",btnScript) of btnScriptput quote & fileName & quote into word it of btnscriptset the script of the last card button to btnScript--get the loc of the last card buttonif prevBtn is not empty thenget the loc of cd btn prevBtnadd 4 to item 1 of itadd 16 to item 2 of itif it is within rect of this cd then set the loc of last card button to itelseset the left of last btn to 0set the top of last btn to 0end ifend ifend ifchoose browse toolunlock screenif the visible of btn NewName thenrepeat 4wait 10set the hilite of btn NewName to not the hilite of btn NewNameend repeatend ifput "To move your button, hold down the option key and drag." --‚àÜend normalInstallon UpdateAnnoteMenusglobal memoMItem,delMItem,showMItem,hideMItem-- First, make sure the menu is there...if there is not a menuItem memoMItem in menu 3 thenput memoMItem & return & delMItem & return & hideMItem after ¬¨menu 3 with menuMsgs "APAddMemo,APDelVNote,APHideNotes"end ifdisable menuItem delMItem of menu 3get FirstSoundButton()if it > 0 then-- handle hide/show itemif the visible of btn it thenput hideMItem into last menuItem of menu 3 with menuMsg APHideNoteselseput showMItem into last menuItem of menu 3 with menuMsg APShowNotesend ifenable last menuItem of menu 3-- handle delete itemput number of btns into NumBtnsrepeat with i = it to NumBtnsif IsSoundButton(i) thenif the hilite of btn i thenif the visible of btn i thenenable menuItem delMItem of menu 3exit repeatend ifend ifend ifend repeatelsedisable last menuItem of menu 3end ifset the enabled of menuItem memoMItem of menu 3 to ¬¨the ID of this bg is in "2603,3664"end upDateAnnoteMenuson apDelVNoteset cursor to watchput the number of btns into NumBtnsget 0repeat with i = 1 to NumBtnsif not IsSoundButton(i) then next repeatif the hilite of btn i then add 1 to itend repeatif it = 1 then put "Delete the selected sound?" into thePrompt --‚àÜelse put "Delete the" && it && "selected sounds?" into thePrompt --‚àÜanswer thePrompt with "No" or "Yes" --‚àÜif it is "No" then exit apDelVNote --‚àÜset cursor to watchlock screenrepeat with i = NumBtns down to 1set cursor to busyif not IsSoundButton(i) then next repeatif the hilite of btn i then send "deleteMe" to btn iend repeatunlock screenresetAPMenusend apDelVNoteon apHideNotesget number of btnsif it = 0 then exit apHideNoteslock screenrepeat with i = it down to 1if not IsSoundButton(i) then next repeathide btn iend repeatunlock screenupdateAnnoteMenusend apHideNoteson apShowNotesget number of btnsif it = 0 then exit apShowNoteslock screenrepeat with i = 1 to itif not IsSoundButton(i) then next repeatshow btn iend repeatunlock screenupdateAnnoteMenusend apShowNoteson apAddMemoglobal SaveSelectsaveSelectionif there is a window AudioPalette thensend "save" to window AudioPaletteelseAudioPaletteif not (there is a window "AudioPalette") thenif saveSelect is not empty then set the textstyle of saveSelect to plainend ifend ifend apAddMemoon resetAPButtons --sent by buttons in appointments and addressesglobal memoMItem,delMItem,showMItem,hideMItemif not (there is a field "notes") then exit resetAPButtonsif the visible of field "notes" thenAPHideNoteselseAPShowNotesend ifend resetAPButtonson PlayAllMemosget the number of btnsif it is 0 then exit PlayAllMemosrepeat with i = 1 to itset the hilite of btn i to trueplay line 1 of the short name of btn irepeat until the sound is doneset the hilite of btn i to not the hilite of btn iif the mouseclick thenset the hilite of btn i to falseexit PlayAllMemosend ifwait 15end repeatset the hilite of btn i to falseend repeatUpdateAnnoteMenusend PlayAllMemosfunction CardHasSoundsif the number of btns = 0 then return falseget the number of btnsrepeat with i = 1 to itif IsSoundButton(i) then return trueend repeatreturn falseend CardHasSoundsfunction IsSoundButton theNumberreturn line 2 of the short name of btn theNumber = "AP Button"end IsSoundButtonfunction FirstSoundButtonif the number of btns = 0 then return 0get the number of btnsrepeat with i = 1 to itif IsSoundButton(i) then return iend repeatreturn 0end FirstSoundButton</script>
  17.     <background id="7507" file="background_7507.xml" name="Main Topics" />
  18.     <background id="13784" file="background_13784.xml" name="Content" />
  19.     <background id="20640" file="background_20640.xml" name="Ancillary" />
  20.     <card id="18406" file="card_18406.xml" marked="false" name="" owner="7507" />
  21.     <card id="22632" file="card_22632.xml" marked="false" name="" owner="7507" />
  22.     <card id="19850" file="card_19850.xml" marked="false" name="" owner="7507" />
  23.     <card id="21934" file="card_21934.xml" marked="false" name="" owner="7507" />
  24.     <card id="21412" file="card_21412.xml" marked="false" name="" owner="7507" />
  25.     <card id="3523" file="card_3523.xml" marked="false" name="What is the Audio Palette?" owner="13784" />
  26.     <card id="45252" file="card_45252.xml" marked="false" name="" owner="13784" />
  27.     <card id="4993" file="card_4993.xml" marked="false" name="What you need to use Audio P" owner="13784" />
  28.     <card id="11813" file="card_11813.xml" marked="false" name="" owner="13784" />
  29.     <card id="2615" file="card_2615.xml" marked="false" name="" owner="13784" />
  30.     <card id="40982" file="card_40982.xml" marked="false" name="" owner="13784" />
  31.     <card id="4838" file="card_4838.xml" marked="false" name="Opening the Audio Palette" owner="13784" />
  32.     <card id="12218" file="card_12218.xml" marked="false" name="" owner="13784" />
  33.     <card id="8374" file="card_8374.xml" marked="false" name="Audio Palette commands" owner="13784" />
  34.     <card id="31386" file="card_31386.xml" marked="false" name="" owner="13784" />
  35.     <card id="42283" file="card_42283.xml" marked="false" name="" owner="13784" />
  36.     <card id="32320" file="card_32320.xml" marked="false" name="Digital Sound" owner="13784" />
  37.     <card id="4106" file="card_4106.xml" marked="false" name="" owner="13784" />
  38.     <card id="2885" file="card_2885.xml" marked="false" name="" owner="13784" />
  39.     <card id="4394" file="card_4394.xml" marked="false" name="" owner="13784" />
  40.     <card id="6142" file="card_6142.xml" marked="false" name="Sound quality" owner="13784" />
  41.     <card id="6520" file="card_6520.xml" marked="false" name="Sound quality" owner="13784" />
  42.     <card id="31181" file="card_31181.xml" marked="false" name="" owner="13784" />
  43.     <card id="43879" file="card_43879.xml" marked="false" name="Managing memory and disk spa" owner="13784" />
  44.     <card id="6367" file="card_6367.xml" marked="false" name="" owner="13784" />
  45.     <card id="32025" file="card_32025.xml" marked="false" name="" owner="13784" />
  46.     <card id="23380" file="card_23380.xml" marked="false" name="" owner="13784" />
  47.     <card id="44283" file="card_44283.xml" marked="false" name="" owner="13784" />
  48.     <card id="25478" file="card_25478.xml" marked="false" name="" owner="13784" />
  49.     <card id="27433" file="card_27433.xml" marked="false" name="" owner="13784" />
  50.     <card id="44669" file="card_44669.xml" marked="false" name="" owner="13784" />
  51.     <card id="8457" file="card_8457.xml" marked="false" name="Adding audio memos to" owner="13784" />
  52.     <card id="15447" file="card_15447.xml" marked="false" name="" owner="13784" />
  53.     <card id="17734" file="card_17734.xml" marked="false" name="" owner="13784" />
  54.     <card id="7986" file="card_7986.xml" marked="false" name="" owner="13784" />
  55.     <card id="15844" file="card_15844.xml" marked="false" name="" owner="13784" />
  56.     <card id="16048" file="card_16048.xml" marked="false" name="" owner="13784" />
  57.     <card id="16197" file="card_16197.xml" marked="false" name="" owner="13784" />
  58.     <card id="15142" file="card_15142.xml" marked="false" name="" owner="13784" />
  59.     <card id="5280" file="card_5280.xml" marked="false" name="Adding sound to your own sta" owner="13784" />
  60.     <card id="23724" file="card_23724.xml" marked="false" name="" owner="13784" />
  61.     <card id="14282" file="card_14282.xml" marked="false" name="" owner="13784" />
  62.     <card id="14444" file="card_14444.xml" marked="false" name="" owner="13784" />
  63.     <card id="22836" file="card_22836.xml" marked="false" name="" owner="13784" />
  64.     <card id="14825" file="card_14825.xml" marked="true" name="" owner="13784" />
  65.     <card id="14851" file="card_14851.xml" marked="false" name="" owner="13784" />
  66.     <card id="7111" file="card_7111.xml" marked="false" name="" owner="13784" />
  67.     <card id="8861" file="card_8861.xml" marked="false" name="Playing sounds" owner="13784" />
  68.     <card id="16558" file="card_16558.xml" marked="false" name="" owner="13784" />
  69.     <card id="16716" file="card_16716.xml" marked="false" name="" owner="13784" />
  70.     <card id="16946" file="card_16946.xml" marked="false" name="" owner="13784" />
  71.     <card id="5462" file="card_5462.xml" marked="false" name="Opening a new sound" owner="13784" />
  72.     <card id="24751" file="card_24751.xml" marked="false" name="" owner="13784" />
  73.     <card id="8996" file="card_8996.xml" marked="false" name="Deleting audio memos" owner="13784" />
  74.     <card id="13565" file="card_13565.xml" marked="false" name="" owner="13784" />
  75.     <card id="31573" file="card_31573.xml" marked="false" name="" owner="13784" />
  76.     <card id="9898" file="card_9898.xml" marked="false" name="Editing tools and the wavefo" owner="13784" />
  77.     <card id="34891" file="card_34891.xml" marked="false" name="" owner="13784" />
  78.     <card id="33359" file="card_33359.xml" marked="false" name="" owner="13784" />
  79.     <card id="33190" file="card_33190.xml" marked="false" name="" owner="13784" />
  80.     <card id="41969" file="card_41969.xml" marked="false" name="" owner="13784" />
  81.     <card id="32767" file="card_32767.xml" marked="false" name="" owner="13784" />
  82.     <card id="33590" file="card_33590.xml" marked="false" name="" owner="13784" />
  83.     <card id="43364" file="card_43364.xml" marked="false" name="" owner="13784" />
  84.     <card id="30704" file="card_30704.xml" marked="false" name="Recording while a sound is o" owner="13784" />
  85.     <card id="33822" file="card_33822.xml" marked="false" name="" owner="13784" />
  86.     <card id="42569" file="card_42569.xml" marked="false" name="" owner="13784" />
  87.     <card id="34163" file="card_34163.xml" marked="false" name="" owner="13784" />
  88.     <card id="34525" file="card_34525.xml" marked="false" name="" owner="13784" />
  89.     <card id="34574" file="card_34574.xml" marked="false" name="" owner="13784" />
  90.     <card id="35320" file="card_35320.xml" marked="false" name="" owner="13784" />
  91.     <card id="35409" file="card_35409.xml" marked="false" name="" owner="13784" />
  92.     <card id="9475" file="card_9475.xml" marked="false" name="Moving a sound" owner="13784" />
  93.     <card id="44418" file="card_44418.xml" marked="false" name="" owner="13784" />
  94.     <card id="38187" file="card_38187.xml" marked="false" name="" owner="13784" />
  95.     <card id="38576" file="card_38576.xml" marked="false" name="" owner="13784" />
  96.     <card id="38740" file="card_38740.xml" marked="false" name="" owner="13784" />
  97.     <card id="35778" file="card_35778.xml" marked="false" name="" owner="13784" />
  98.     <card id="35891" file="card_35891.xml" marked="false" name="" owner="13784" />
  99.     <card id="45359" file="card_45359.xml" marked="false" name="" owner="13784" />
  100.     <card id="36348" file="card_36348.xml" marked="false" name="" owner="13784" />
  101.     <card id="36554" file="card_36554.xml" marked="false" name="" owner="13784" />
  102.     <card id="36772" file="card_36772.xml" marked="false" name="" owner="13784" />
  103.     <card id="37048" file="card_37048.xml" marked="false" name="" owner="13784" />
  104.     <card id="37348" file="card_37348.xml" marked="false" name="" owner="13784" />
  105.     <card id="23242" file="card_23242.xml" marked="false" name="Saving a sound in a differen" owner="13784" />
  106.     <card id="9289" file="card_9289.xml" marked="false" name="" owner="13784" />
  107.     <card id="38961" file="card_38961.xml" marked="false" name="" owner="13784" />
  108.     <card id="25751" file="card_25751.xml" marked="false" name="Deleting sounds" owner="13784" />
  109.     <card id="39393" file="card_39393.xml" marked="false" name="" owner="13784" />
  110.     <card id="39580" file="card_39580.xml" marked="false" name="" owner="13784" />
  111.     <card id="39732" file="card_39732.xml" marked="false" name="" owner="13784" />
  112.     <card id="39984" file="card_39984.xml" marked="false" name="" owner="13784" />
  113.     <card id="37594" file="card_37594.xml" marked="false" name="" owner="13784" />
  114.     <card id="10028" file="card_10028.xml" marked="false" name="Recording level" owner="13784" />
  115.     <card id="27864" file="card_27864.xml" marked="false" name="" owner="13784" />
  116.     <card id="28018" file="card_28018.xml" marked="false" name="" owner="13784" />
  117.     <card id="10466" file="card_10466.xml" marked="false" name="Recording time" owner="13784" />
  118.     <card id="10744" file="card_10744.xml" marked="false" name="Play through" owner="13784" />
  119.     <card id="28545" file="card_28545.xml" marked="false" name="" owner="13784" />
  120.     <card id="11106" file="card_11106.xml" marked="false" name="Auto Record Level" owner="13784" />
  121.     <card id="11482" file="card_11482.xml" marked="false" name="Compression" owner="13784" />
  122.     <card id="29011" file="card_29011.xml" marked="false" name="" owner="13784" />
  123.     <card id="11553" file="card_11553.xml" marked="false" name="Recording Quality" owner="13784" />
  124.     <card id="46355" file="card_46355.xml" marked="false" name="" owner="13784" />
  125.     <card id="28352" file="card_28352.xml" marked="false" name="" owner="13784" />
  126.     <card id="29340" file="card_29340.xml" marked="false" name="Volume Control" owner="13784" />
  127.     <card id="17277" file="card_17277.xml" marked="false" name="Quick View" owner="20640" />
  128.     <card id="7275" file="card_7275.xml" marked="false" name="" owner="20640" />
  129.     <card id="3844" file="card_3844.xml" marked="false" name="Overview" owner="20640" />
  130. </stack>
  131.